package org.spbsu.apco.common.properties;

/**
 * User: solozobov
 * Date: 07.01.13
 */
public enum PropertyKey {
    TARGET("target"),
    COMMAND_LINE_EXECUTION_DIR("command_line_execution_dir", PropertyKeyGroup.CLIENT),
    BROKER_HOST("broker_host", PropertyKeyGroup.SERVER),
    BROKER_PORT("broker_port", PropertyKeyGroup.SERVER),
    BROKER_URL("broker_url", PropertyKeyGroup.CLIENT),
    WORKING_THREADS_COUNT("working_threads_count", PropertyKeyGroup.CLIENT),
    DISPATCHING_TIMEOUT("dispatching_timeout", PropertyKeyGroup.CLIENT),
    FILE_STORAGE_DIR("file_storage_dir", PropertyKeyGroup.CLIENT, PropertyKeyGroup.SERVER),
    STOPWATCH_FACTORY_MODE("stopwatch_factory_mode"),
    WAIT_TASK_DURATION("wait_task_duration", PropertyKeyGroup.SERVER),
    DEFAULT_TASK_DURATION("default_task_duration", PropertyKeyGroup.SERVER),
    BATCH_TASK_TRESHOLD("batch_task_treshold", PropertyKeyGroup.SERVER),
    COMMAND_LINE_EXECUTOR("command_line_executor", PropertyKeyGroup.CLIENT),
    TASKSET_DESCRIPTOR_FILENAME("taskset_descriptor_filename", PropertyKeyGroup.SERVER);

    public final String propertyName;
    public final PropertyKeyGroup[] propertyKeyGroups;

    private PropertyKey(final String propertyName, final PropertyKeyGroup ... propertyKeyGroups) {
        this.propertyName = propertyName;
        this.propertyKeyGroups = propertyKeyGroups;
    }
}
